﻿/********************************************************/
/* For 基于.NET的开发技术 课程设计                      */
/*                    学生选课系统                      */
/*author    ：  吴慧文                                  */
/*time      ：  2009年11月8日                           */
/*版本      ：  1.0                                     */
/*文件名    ：  Teachers.cs                             */
/********************************************************/
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace CMS
{
    [Serializable]
    class Teachers
    {
        private List<Teacher> teachers;

        //构造函数
        public Teachers()
        {
            teachers = new List<Teacher>();
        }

        //增加教师
        public void addTeacher(Teacher teacher)
        {
            teachers.Add(teacher);
        }

        //删除教师（实质上是通过教师id删除之）
        public void deleteTeacher(Teacher teacher)
        {
            for (int i = 0; i < teachers.Count; i++)
            {
                if (teachers.ElementAt(i).Equals(teacher))
                {
                    teachers.RemoveAt(i);
                    break;
                }
            }
        }

        //查询教师
        //Teachers t = new Teachers();
        //t[ID:xx] 按教师编号查询
        //t[NAME:xx] 按教师姓名查询
        //t[""] 获取所有教师的信息
        public List<Teacher> this[string s]
        {
            get
            {
                if (s.Equals(""))
                {
                    return teachers;
                }
                else
                {
                    string[] tempS = s.Split(':');
                    if (tempS[0] != "" && tempS[1] != "")
                    {
                        if (tempS[0].Equals("ID"))
                        {
                            //根据教师id查询课程
                            return this.getTeacherById(tempS[1]);
                        }
                        if (tempS[0].Equals("NAME"))
                        {
                            //根据教师name查询课程
                            return this.getTeacherByName(tempS[1]);
                        }
                    }
                    return null;
                }
            }
        }

        //私有函数，根据教师id查询课程，返回相关学生
        private List<Teacher> getTeacherById(string id)
        {
            List<Teacher> result = new List<Teacher>();
            foreach (Teacher tem in teachers)
            {
                if (tem.Id.Equals(id))
                {
                    result.Add(tem);
                }
            }
            return result;
        }

        //私有函数，根据教师name查询课程，返回相关学生
        private List<Teacher> getTeacherByName(string name)
        {
            List<Teacher> result = new List<Teacher>();
            foreach (Teacher tem in teachers)
            {
                if (tem.Name.Equals(name))
                {
                    result.Add(tem);
                }
            }
            return result;
        }
    }
}
